# -*- Python -*-

import os

# FIXME: The MachO back-end currently does not respect endianness when
# accessing binary data structures, and therefore only works correctly
# on little-endian host systems.  Skip all tests on big-endian hosts.
if sys.byteorder == "big":
    config.unsupported = True

# We specify the most commonly-used archs and platform versions in our tests
# here. Tests which need different settings can just append to this, as only
# the last value will be used.
#
# Note however that this does not apply to `-syslibroot`: each instance of that
# flag will append to the set of library roots. As such, we define a separate
# alias for each platform.

lld_watchos = (
    "ld64.lld -lSystem -arch arm64_32 -platform_version watchos 7.0 8.0 -syslibroot "
    + os.path.join(config.test_source_root, "MachO", "Inputs", "WatchOS.sdk")
)
config.substitutions.append(("%lld-watchos", lld_watchos + " -fatal_warnings"))
config.substitutions.append(("%no-fatal-warnings-lld-watchos", lld_watchos))

config.substitutions.append(("%no-arg-lld", "ld64.lld"))

# Since most of our tests are written around x86_64, we give this platform the
# shortest substitution of "%lld".
lld = (
    "ld64.lld -arch x86_64 -platform_version macos 11.0 11.0 -syslibroot "
    + os.path.join(config.test_source_root, "MachO", "Inputs", "MacOSX.sdk")
)
config.substitutions.append(("%lld", lld + " -lSystem -fatal_warnings"))
config.substitutions.append(("%no-lsystem-lld", lld + " -fatal_warnings"))
config.substitutions.append(("%no-fatal-warnings-lld", lld + " -lSystem"))
